/* eslint-disable @next/next/no-sync-scripts */ /* eslint-disable @next/next/no-page-custom-font */ /* eslint-disable no-console */ import { GoogleAnalytics } from "@next/third-parties/google"; import Head from "next/head"; import { cookies } from "next/headers"; import { notFound, redirect } from "next/navigation"; import { DomainStateEnum } from "@/@types/enums/domain-state-enum"; import { Error } from "@/app/error"; import DefaultPageByAddonds from "@/components/shared/page-wrapper/components/default-page-by-addon"; import FlightPageContent from "@/components/shared/page-wrapper/components/flight-page-content"; import HotelPageContent from "@/components/shared/page-wrapper/components/hotel-page-content"; import RentCarPageContent from "@/components/shared/page-wrapper/components/rentcar-page-content"; import TourPageContent from "@/components/shared/page-wrapper/components/tour-page-content"; import TransferPageContent from "@/components/shared/page-wrapper/components/transfer-page-content"; import PageWrapper from "@/components/shared/page-wrapper/page-wrapper"; import CmsWrapper from "@/features/cms/cms-wrapper"; import type { StrategyType } from "@/hooks/useApp"; import { getGoogleAnalyticsAddon } from "@/libs/helpers/addon-helper"; import type { IClientConfiguration } from "@/models/client-configs.model"; import { Preload } from "@/server/preload/preload"; import { getPathService } from "@/server/services/path.services"; interface AppMetaData { title: string; } const appMetaData: Record = { B2C: { title: "Tatil | Size Uygun tatil Seçenekleri", }, Corporate: { title: "Jolly Kurumsal Seyahatler", }, Otel: { title: "Otel", }, }; const PageContents = { hotel: () => , flight: () => , tour: () => , transfer: () => , rentcar: () => , }; interface PageWithSlugProps { params: { slug: string[] }; } export default async function PageWithSlug(props: PageWithSlugProps) { const baseUrl = await Preload.getBaseUrl(); let clientToken = await Preload.getClientToken(baseUrl.origin); if (!clientToken) { return ; } let clientConfig: IClientConfiguration | null = await Preload.getClientConfigs(baseUrl.origin, clientToken); if (!clientConfig) { await Preload.clearClientToken(baseUrl.origin); clientToken = await Preload.getClientToken(baseUrl.origin, true); clientConfig = await Preload.getClientConfigs(baseUrl.origin, clientToken); if (!clientConfig) { return ; } } console.log("🚀 clientConfig", JSON.stringify(clientConfig, null, 2)); if (clientConfig.domainState === DomainStateEnum.Closed) { return ; } const isFeedCms = (clientConfig.domainType as StrategyType) === "B2C"; if (isFeedCms && !props.params.slug && clientConfig.properties.mainpage) { return redirect(clientConfig.properties.mainpage); } const strategyKeys = await Preload.getStrategyKeys( baseUrl.origin, clientToken, ); if (!strategyKeys) { return ; } const appAddons = await Preload.getDomainAddons(baseUrl.origin, clientToken); if (!appAddons) { return ; } const appData = { strategy: clientConfig.domainType, }; const documentTitle = appData.strategy === "Otel" ? clientConfig.clientScope : appMetaData[clientConfig.domainType as StrategyType]?.title; const languages = cookies().get("lng"); let pathValue; if (isFeedCms) { // TODO: Refactor me if ( props.params.slug?.find((x) => { return ["null", "node_modules"].includes(x); }) ) { return notFound(); } pathValue = await getPathService({ baseUrl: baseUrl.origin, path: !props.params.slug ? "" : props.params.slug?.join("/"), token: clientToken, languageCode: languages?.value ?? "tr", }); if (!pathValue || !pathValue.success) { if (!props.params.slug) { return ; } return notFound(); } } const GaAddonWithKey = getGoogleAnalyticsAddon(appAddons); const authCookie = cookies().get("auth"); const authTokenInfo = authCookie ? JSON.parse(authCookie.value) : null; const currency = cookies().get("currency"); return ( <> {documentTitle} {baseUrl.host.includes("turkishairlines.jollytur.com") && (